package com.lbh.platforms.windows;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.WString;

/***
 * project:JRuntime
 * package:com.lbh.platforms.windows
 *
 * @author user:lenovo QQ:1601078366
 * @date 2021/10/19 1:52
 * @version V1.0
 */
@SuppressWarnings({"unused", "SpellCheckingInspection", "AlibabaAbstractMethodOrInterfaceMethodMustUseJavadoc", "AlibabaLowerCamelCaseVariableNaming", "AlibabaConstantFieldShouldBeUpperCase"})
public interface WinGlu32 extends Library {

    WinGlu32 ins = Native.load("glu32", WinGlu32.class);

    String gluErrorString(int errCode);
    WString gluErrorUnicodeStringEXT(int errCode);
    String gluGetString(int name);
    void gluOrtho2D(double left,double right,double bottom,double top);
    void gluPerspective(double fovy,double aspect,double zNear,double zFar);
    void gluPickMatrix(double x,double y,double width,double height,int[] viewport);
    void gluLookAt(double eyex,double eyey,double eyez,double centerx,double centery,double centerz,double upx,double upy,double upz);
    int gluProject(double objx,double objy,double objz,double[] modelMatrix,double[] projMatrix,int[] viewport,double[] winx,double[] winy,double[] winz);
    int gluUnProject(double winx,double winy,double winz,double[] modelMatrix,double[] projMatrix,int[] viewport,double[] objx,double[] objy,double[] objz);
    int gluScaleImage(int format, int widthin, int heightin, int typein, Pointer datain, int widthout, int heightout, int typeout, Pointer dataout);
    int gluBuild1DMipmaps(int target,int components,int width,int format,int type,Pointer data);
    int gluBuild2DMipmaps(int target,int components,int width,int height,int format,int type,Pointer data);
}
